//当HTML的data-theme为dark时，样式引用dark
//data-theme为其他值时，就采用组件库的默认样式
//这里我只定义了两套主题方案，想要再多只需在`$themes`里加就行了
//注意一点是，每套配色方案里的key可以自定义但必须一致，不然就会混乱

$themes: (
  light: (
    //字体
      font_color1: #000,
    //背景
      background_color1: #fff,
    //边框
      border_color1: rgb(127, 243, 18),
  ),
  dark: (
    //字体
      font_color1: #fff,
    //背景
      background_color1: #000,
    //边框
      border_color1: rgb(11, 15, 243),
  ),
);

//遍历主题map
@mixin themeify {
  @each $theme-name, $theme-map in $themes {
    // * !global 把局部变量强升为全局变量
    $theme-map: $theme-map !global;
    // * 判断html的data-theme的属性值  #{}是sass的插值表达式
    // * & sass嵌套里的父容器标识   @content是混合器插槽，像vue的slot
    [data-theme='#{$theme-name}'] & {
      @content;
    }
  }
}

//声明一个根据Key获取颜色的function
@function themed($key) {
  @return map-get($theme-map, $key);
}

//获取背景颜色
@mixin background_color($color) {
  @include themeify {
    background-color: themed($color) !important;
  }
}

//获取字体颜色
@mixin font_color($color) {
  @include themeify {
    color: themed($color) !important;
  }
}

//获取边框颜色
@mixin border_color($color) {
  @include themeify {
    border-color: themed($color) !important;
  }
}
